package org.jeecg.modules.inspect.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 任务
 * @Author: jeecg-boot
 * @Date:   2023-11-24
 * @Version: V1.0
 */
@Data
@TableName("ins_task")
@ApiModel(value="ins_task对象", description="任务")
public class InsTask implements Serializable {
    private static final long serialVersionUID = 1L;

	/**任务ID*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "任务ID")
    private java.lang.String id;

	/**任务编号*/
    @Excel(name = "任务编号", width = 15)
    @ApiModelProperty(value = "任务编号")
    private java.lang.String taskNo;

    /**任务名称*/
    @Excel(name = "任务名称", width = 15)
    @ApiModelProperty(value = "任务名称")
    private java.lang.String taskName;

    /**任务类型*/
    @Excel(name = "任务类型", width = 15)
    @ApiModelProperty(value = "任务类型")
    private java.lang.String taskType;

    /**执行周期*/
    @Excel(name = "执行周期", width = 15, dicCode = "execute_cycle")
    @Dict(dicCode = "execute_cycle")
    @ApiModelProperty(value = "执行周期")
    private java.lang.String executeCycle;

    /**任务状态*/
    @Excel(name = "任务状态", width = 15, dicCode = "task_status")
    @Dict(dicCode = "task_status")
    @ApiModelProperty(value = "任务状态")
    private java.lang.String taskStatus;

    /**任务类型：1单次全覆盖 0全天全覆盖*/
    @Excel(name = "任务类型：1单次全覆盖 0全天全覆盖", width = 15, dicCode = "task_class")
    @Dict(dicCode = "task_class")
    @ApiModelProperty(value = "任务类型：1单次全覆盖 0全天全覆盖")
    private java.lang.String taskClass;
    /**班次表主键*/
    @Excel(name = "班次表主键", width = 15)
    @Dict(dictTable = "ins_classes", dicText = "class_name", dicCode = "id")
    @ApiModelProperty(value = "班次表主键")
    private java.lang.String classId;

	/**开始时间*/
    @Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间")
    private java.util.Date taskBegin;

	/**结束时间*/
    @Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    private java.util.Date taskEnd;

	/**已巡检数*/
    @Excel(name = "已巡检数", width = 15)
    @ApiModelProperty(value = "已巡检数")
    private java.lang.Integer inspectedNum;

	/**总点位数*/
    @Excel(name = "总点位数", width = 15)
    @ApiModelProperty(value = "总点位数")
    private java.lang.Integer pointNum;

	/**规则*/
    @Excel(name = "规则", width = 15, dictTable = "ins_rule", dicText = "rule_name", dicCode = "id")
    @Dict(dictTable = "ins_rule", dicText = "rule_name", dicCode = "id")
    @ApiModelProperty(value = "规则")
    private java.lang.String ruleId;

	/**角色*/
    @Excel(name = "角色", width = 15, dictTable = "sys_role", dicText = "role_name", dicCode = "id")
    @Dict(dictTable = "sys_role", dicText = "role_name", dicCode = "id")
    @ApiModelProperty(value = "角色")
    private java.lang.String roleId;

	/**部门*/
    @Excel(name = "部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "部门")
    private java.lang.String deptId;
    /**部门名称*/
    @Excel(name = "部门名称", width = 15)
    @ApiModelProperty(value = "部门名称")
    private java.lang.String deptName;

	/**人员*/
    @Excel(name = "人员", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @ApiModelProperty(value = "人员")
    private java.lang.String userId;
    /**部门名称*/
    @Excel(name = "用户名称", width = 15)
    @ApiModelProperty(value = "用户名称")
    private java.lang.String userName;


    /**执行人*/
    @Excel(name = "执行人", width = 15)
    @ApiModelProperty(value = "执行人")
    private java.lang.String executor;

	/**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;

	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;

	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;

	/**修改人*/
    @ApiModelProperty(value = "修改人")
    private java.lang.String updateBy;

	/**修改时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private java.util.Date updateTime;

	/**删除标记 0正常 1已删除*/
    @Excel(name = "删除标记 0正常 1已删除", width = 15)
    @ApiModelProperty(value = "删除标记 0正常 1已删除")
    //@TableLogic
    private java.lang.Integer delFlag;

	/**组织机构编码*/
    @ApiModelProperty(value = "组织机构编码")
    private java.lang.String sysOrgCode;

    @TableField(exist = false)
    private List<InsTaskItem> insTaskItemList;
    /**任务异常消息*/
    @TableField(exist = false)
    private String errInfo;

    /**打卡签到起始时间*/
    @Excel(name = "打卡签到起始时间", width = 15)
    @ApiModelProperty(value = "打卡签到起始时间")
    private String classTimePre;
    /**打卡签到结束时间*/
    @Excel(name = "打卡签到结束时间", width = 15)
    @ApiModelProperty(value = "打卡签到结束时间")
    private String classTimeEnd;

    //开始时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date startDate;
    //结束时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date endDate;

}
